package main

import (
	"bufio"
	"bytes"
	"fmt"
)

func main() {
	// ReadLine()是一个低级的用于读取一行数据的原语，大多数调用者应该使用ReadBytes('\n')或者
	// ReadString('\n').ReadLine 试图返回一行，不包括结尾的回车字符。如果一行太长（超过了缓冲区长度），
	// 参数isPrefix会设置为true并且只返回前面的数据，剩余的数据会在以后的调用中返回。
	// 当返回最后一行数据时，参数isPrefix会置为false
	// 返回的字节切片只在下一次调用ReadLine前有效。
	// ReadLine或者返回一个非空的字节切片或者返回一个错误，但他们不会同时返回
	data := []byte("Golang is a beautiful language.\r\n I like it!")
	rd := bytes.NewReader(data)
	r := bufio.NewReader(rd)
	line, prefix, err := r.ReadLine()
	fmt.Println(string(line), prefix, err)
}
